const { app } = require('electron');
const fs = require('fs');
const path = require('path');

// 模拟electron的app对象，用于获取userData路径
const mockApp = {
  getPath: function(key) {
    if (key === 'userData') {
      // Windows系统默认路径
      if (process.platform === 'win32') {
        return path.join(process.env.APPDATA || '', 'desktop-widget-app');
      }
      // macOS系统默认路径
      else if (process.platform === 'darwin') {
        return path.join(process.env.HOME, 'Library', 'Application Support', 'desktop-widget-app');
      }
      // Linux系统默认路径
      else {
        return path.join(process.env.HOME, '.config', 'desktop-widget-app');
      }
    }
    return '';
  }
};

// 尝试找到并删除数据库文件
try {
  // 获取数据库路径
  const dataDir = mockApp.getPath('userData');
  const dbPath = path.join(dataDir, 'tasks.db');
  
  console.log('尝试删除数据库文件:', dbPath);
  
  // 检查文件是否存在
  if (fs.existsSync(dbPath)) {
    // 删除文件
    fs.unlinkSync(dbPath);
    console.log('数据库文件已成功删除。应用重启时将创建新的数据库表结构。');
  } else {
    console.log('数据库文件不存在:', dbPath);
    console.log('请检查实际的数据库文件位置，或手动添加dueDate列到tasks表。');
    console.log('\n替代方案：\n1. 找到实际的数据库文件并删除它\n2. 或者在database.js中添加ALTER TABLE语句来添加dueDate列');
  }
} catch (error) {
  console.error('删除数据库文件时出错:', error);
  console.log('\n请手动执行以下操作：\n1. 找到应用的数据目录\n2. 删除tasks.db文件\n3. 重启应用');
}